﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebPrestamoBiblioteca.Dominio;
using System.ServiceModel.Web;

namespace WebPrestamoBiblioteca.Controllers
{
    public class InscripcionController : Controller
    {

        private SOAPLectores.LectoresClient proxy = new SOAPLectores.LectoresClient();
        
        public ActionResult Registro()
        {
            return View();
        }
        
        [HttpPost]
        public ActionResult Registro(Lector model)
        {
            try
            {
                SOAPLectores.Usuario usuario = new SOAPLectores.Usuario()
                {
                    NuDocumento = model.NuDocumento,
                    DeCorreo = model.DeCorreo,
                    DeNombre = model.DeNombre,
                    DeApellido = model.DeApellido,
                    DeDireccion = model.DeDireccion,
                    DeDistrito = model.DeDistrito,
                };
                SOAPLectores.Usuario usuarioRegistrado = proxy.RegistrarUsuario(usuario);
                
                return View("Registrado");
            }
            catch (Exception e)
            {
                if (e.Message == "Bad Request")
                ModelState.AddModelError(String.Empty, "Error: Hay datos vacios o nulos.");

                if (e.Message == "Not Acceptable")
                    ModelState.AddModelError(String.Empty, "Error: DNI o EMAil ya esta registrado.");
                return View();
            }
            
        }

        public ActionResult Buscarlector()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Consultarlector(FormCollection form)
        {
            if ((form["dni"] == null || form["dni"].Trim().Equals("")) && (form["correo"] == null || form["correo"].Trim().Equals("")))
            {
                TempData["mensaje"] = "Ingrese DNI o E-Mail por favor!!!";
                return View("Buscarlector");
            }
            try
            {
                SOAPLectores.Usuario usuarioBuscado = proxy.ObtenerUsuario(form["dni"], form["correo"]);
                Lector usuario = new Lector()
                {
                    NuDocumento = usuarioBuscado.NuDocumento,
                    DeCorreo = usuarioBuscado.DeCorreo,
                    DeNombre = usuarioBuscado.DeNombre,
                    DeApellido = usuarioBuscado.DeApellido,
                    DeDireccion = usuarioBuscado.DeDireccion,
                    DeDistrito = usuarioBuscado.DeDistrito,
                    IdUsuario = usuarioBuscado.IdUsuario,
                    DeSituacion = usuarioBuscado.DeSituacion
                };
                return View(usuario);
            }
            catch (Exception e)
            {
                if (e.Message == "Bad Request")
                    ModelState.AddModelError(String.Empty, "Error: Hay datos vacios o nulos.");

                if (e.Message == "Not Found")
                    ModelState.AddModelError(String.Empty, "Error: Lector no esta registrado.");
                return View("Buscarlector");
            }
        }
    }
}
